<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .shake{
            animation: shake 0.85s;
            transform: translate3d(0,0,0);
            backface-visibility: hidden;
            perspective: 1000px;
        }

        @keyframes shake{
            10%,
            90%{
                transform: translate3d(-1px,0,0);
            }

            20%,
            80%{
                transform: translate3d(2px,0,0);
            }

            30%,
            50%,
            70%{
                transform: translate3d(-4px,0,0);
            }

            40%,
            60%{
                transform: translate3d(4px,0,0);
            }
        }
    </style>
    <script src="https://unpkg.com/vue@next"></script>
</head>
<body>
    <div id="app">
        Push this button to do something you shouldn't be doing:<br />
        <div :class='{shake:noActivated}'>
            <button @click="noActivated=true">Click me</button>
            <br/>
            <span v-if="noActivated">Oh no!</span>
        </div>

    </div>

    <script>
        const AppComp={
            data() {
                return {
                    noActivated: false
                }
            },
        }

        const app = Vue.createApp(AppComp)
        const vm = app.mount("#app")
    </script>
</body>
</html>